public RasterTagMetadata(
int id,
RasterTagMetadataDataType dataType,
byte[] data
)
- (instancetype)initWithId:(NSUInteger)tagId
type:(LTRasterTagMetadataDataType)type
data:(nullable NSData *)data
public RasterTagMetadata(
int id,
RasterTagMetadataDataType dataType,
byte[] data
);
public:
RasterTagMetadata(
int id,
RasterTagMetadataDataType dataType,
array<byte>^ data
)
id
The tag id
dataType
The data type of the tag
data
The data for the tag
using Leadtools;
using Leadtools.Codecs;
public void RasterTagMetadataExample()
{
RasterCodecs codecs = new RasterCodecs();
codecs.ThrowExceptionsOnInvalidImages = true;
string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp");
string destFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1_tags.tif");
// Load the image
RasterImage image = codecs.Load(srcFileName);
// add the tags
const int tagSoftware = 0x8001;
RasterTagMetadata tag;
// Ascii
tag = new RasterTagMetadata();
tag.Id = tagSoftware;
tag.DataType = RasterTagMetadataDataType.Ascii;
tag.FromAscii("Test String");
image.Tags.Add(tag);
// Byte
tag = new RasterTagMetadata();
tag.Id = tagSoftware;
tag.DataType = RasterTagMetadataDataType.Byte;
byte[] byteArray = new byte[1];
byteArray[0] = 10;
tag.FromByte(byteArray);
image.Tags.Add(tag);
// SByte
tag = new RasterTagMetadata();
tag.Id = tagSoftware;
tag.DataType = RasterTagMetadataDataType.SByte;
sbyte[] sbyteArray = new sbyte[1];
sbyteArray[0] = -45;
tag.FromSByte(sbyteArray);
image.Tags.Add(tag);
// Int16
tag = new RasterTagMetadata();
tag.Id = tagSoftware;
tag.DataType = RasterTagMetadataDataType.Int16;
short[] shortArray = new short[1];
shortArray[0] = 64;
tag.FromInt16(shortArray);
image.Tags.Add(tag);
// Uint16
tag = new RasterTagMetadata();
tag.Id = tagSoftware;
tag.DataType = RasterTagMetadataDataType.UInt16;
ushort[] uint16Array = new ushort[1];
uint16Array[0] = 50;
tag.FromUInt16(uint16Array);
image.Tags.Add(tag);
// Int32
tag = new RasterTagMetadata();
tag.Id = tagSoftware;
tag.DataType = RasterTagMetadataDataType.Int32;
int[] intArray = new int[1];
intArray[0] = -1326;
tag.FromInt32(intArray);
image.Tags.Add(tag);
// Uint32
tag = new RasterTagMetadata();
tag.Id = tagSoftware;
tag.DataType = RasterTagMetadataDataType.UInt32;
uint[] uintArray = new uint[1];
uintArray[0] = 1326;
tag.FromUInt32(uintArray);
image.Tags.Add(tag);
// single
tag = new RasterTagMetadata();
tag.Id = tagSoftware;
tag.DataType = RasterTagMetadataDataType.Single;
float[] singleArray = new float[1];
singleArray[0] = 4.53f;
tag.FromSingle(singleArray);
image.Tags.Add(tag);
// Double
tag = new RasterTagMetadata();
tag.Id = tagSoftware;
tag.DataType = RasterTagMetadataDataType.Double;
double[] doubleArray = new double[1];
doubleArray[0] = 7.1;
tag.FromDouble(doubleArray);
image.Tags.Add(tag);
// Rational
tag = new RasterTagMetadata();
tag.Id = tagSoftware;
tag.DataType = RasterTagMetadataDataType.Rational;
RasterMetadataRational[] rational = new RasterMetadataRational[1];
rational[0] = new RasterMetadataRational();
rational[0].Numerator = 3;
rational[0].Denominator = 2;
tag.FromRational(rational);
image.Tags.Add(tag);
// URational
tag = new RasterTagMetadata();
tag.Id = tagSoftware;
tag.DataType = RasterTagMetadataDataType.URational;
RasterMetadataURational[] urational = new RasterMetadataURational[1];
urational[0] = new RasterMetadataURational(3, 2);
tag.FromURational(urational);
image.Tags.Add(tag);
// Save the image and its tags to the destination tiff file
codecs.Options.Save.Tags = true;
codecs.Save(image, destFileName, RasterImageFormat.Tif, 1);
// Enumerate the tags from the file
codecs.TagFound += new EventHandler<CodecsEnumTagsEventArgs>(codecs_TagFound);
codecs.EnumTags(destFileName, 1);
// clean up
image.Dispose();
codecs.Dispose();
}
void codecs_TagFound(object sender, CodecsEnumTagsEventArgs e)
{
Console.WriteLine("Found tag id = {0}, count = {1}, type = {2}", e.Id, e.Count, e.MetadataType);
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";
}
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import org.junit.*;
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
import static org.junit.Assert.*;
import leadtools.*;
import leadtools.codecs.*;
public void rasterTagMetadataExample() throws FileNotFoundException {
final String LEAD_VARS_ImagesDir = "C:\\LEADTOOLS23\\Resources\\Images";
RasterCodecs codecs = new RasterCodecs();
codecs.setThrowExceptionsOnInvalidImages(true);
String srcFileName = combine(LEAD_VARS_ImagesDir, "Image1.cmp");
String destFileName = combine(LEAD_VARS_ImagesDir, "Image1_tags.tif");
// Load the image
RasterImage image = codecs.load(srcFileName);
// Add the tags
final int tagSoftware = 0x8001;
RasterTagMetadata tag;
// Ascii
tag = new RasterTagMetadata();
tag.setId(tagSoftware);
tag.setDataType(RasterTagMetadataDataType.ASCII);
tag.fromAscii("Test String");
image.getTags().add(tag);
// Byte
tag = new RasterTagMetadata();
tag.setId(tagSoftware);
tag.setDataType(RasterTagMetadataDataType.BYTE);
byte[] byteArray = new byte[1];
byteArray[0] = 10;
tag.fromByte(byteArray);
image.getTags().add(tag);
// SByte
tag = new RasterTagMetadata();
tag.setId(tagSoftware);
tag.setDataType(RasterTagMetadataDataType.SBYTE);
byte[] sbyteArray = new byte[1];
byteArray[0] = -45;
tag.fromSByte(sbyteArray);
image.getTags().add(tag);
// Int16
tag = new RasterTagMetadata();
tag.setId(tagSoftware);
tag.setDataType(RasterTagMetadataDataType.INT_16);
short[] shortArray = new short[1];
shortArray[0] = 64;
tag.fromInt16(shortArray);
image.getTags().add(tag);
// Uint16
tag = new RasterTagMetadata();
tag.setId(tagSoftware);
tag.setDataType(RasterTagMetadataDataType.INT_32);
int[] uint16Array = new int[1];
uint16Array[0] = 4;
tag.fromInt32(uint16Array);
image.getTags().add(tag);
// Int32
tag = new RasterTagMetadata();
tag.setId(tagSoftware);
tag.setDataType(RasterTagMetadataDataType.INT_32);
int[] intArray = new int[1];
intArray[0] = -1326;
tag.fromInt32(intArray);
image.getTags().add(tag);
// Uint32
tag = new RasterTagMetadata();
tag.setId(tagSoftware);
tag.setDataType(RasterTagMetadataDataType.INT_32);
int[] uintArray = new int[1];
uintArray[0] = 1326;
tag.fromInt32(uintArray);
image.getTags().add(tag);
// Float
tag = new RasterTagMetadata();
tag.setId(tagSoftware);
tag.setDataType(RasterTagMetadataDataType.SINGLE);
float[] singleArray = new float[1];
singleArray[0] = 4.53f;
tag.fromSingle(singleArray);
image.getTags().add(tag);
// Double
tag = new RasterTagMetadata();
tag.setId(tagSoftware);
tag.setDataType(RasterTagMetadataDataType.DOUBLE);
double[] doubleArray = new double[1];
doubleArray[0] = 7.1;
tag.fromDouble(doubleArray);
image.getTags().add(tag);
// Rational
tag = new RasterTagMetadata();
tag.setId(tagSoftware);
tag.setDataType(RasterTagMetadataDataType.RATIONAL);
RasterMetadataRational[] rational = new RasterMetadataRational[1];
rational[0] = new RasterMetadataRational(3, 2);
tag.fromRational(rational);
image.getTags().add(tag);
// URational
tag = new RasterTagMetadata();
tag.setId(tagSoftware);
tag.setDataType(RasterTagMetadataDataType.URATIONAL);
RasterMetadataURational[] urational = new RasterMetadataURational[1];
urational[0] = new RasterMetadataURational(3, 2);
tag.fromURational(urational);
image.getTags().add(tag);
// Save the image and its tags to the destination tiff file
codecs.getOptions().getSave().setTags(true);
codecs.save(image, destFileName, RasterImageFormat.TIF, 1);
assertTrue("Image unsuccessfully saved", new File(destFileName).exists());
System.out.printf("Commands run, image saved to %s", destFileName);
// Enumerate the tags from the file
codecs.addTagFoundListener(new CodecsTagFoundListener() {
@Override
public void onTagFound(CodecsEnumTagsEvent e) {
System.out.printf("Found tag id = %s, count = %s, type = %s", e.getId(), e.getCount(), e.getMetadataType());
}
});
File file = new File(destFileName);
InputStream is = new FileInputStream(file);
LeadStream ls = new LeadStream(is, false);
codecs.enumTags(ls, 1);
assertTrue("File failed to save", file.exists());
System.out.println("The file exists");
// clean up
image.dispose();
codecs.dispose();
}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document
Your email has been sent to support! Someone should be in touch! If your matter is urgent please come back into chat.
Chat Hours:
Monday - Friday, 8:30am to 6pm ET
Thank you for your feedback!
Please fill out the form again to start a new chat.
All agents are currently offline.
Chat Hours:
Monday - Friday
8:30AM - 6PM EST
To contact us please fill out this form and we will contact you via email.